package com.jy.api.misc.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * @author Alen
 * @date 2024/8/7 16:14
 * @since 2024/8/7 16:14
 */
@ApiModel("值域")
public class ZhiYuDto {
    @JSONField(
            serializeUsing = ToStringSerializer.class
    )
    private Long id;
    @ApiModelProperty("值集标识符")
    private String zhiJiBSF;
    @ApiModelProperty("值集名称")
    private String zhiJiMC;
    @ApiModelProperty("版本")
    private Integer banBen;
    @ApiModelProperty("描述")
    private String miaoShu;
    @ApiModelProperty("状态。2：使用，3：作废")
    private Integer status;
    @ApiModelProperty("标准类型, 国标_1, 省标_2, 团体标准_3, 项目标准_4, 公司级别_5")
    private Integer biaoZhunLX;
    @ApiModelProperty("发布机构ID")
    private String faBuJGID;
    @ApiModelProperty("发布机构名称")
    private String faBuJGMC;
    @ApiModelProperty("发布时间")
    private LocalDate faBuSJ;
    @ApiModelProperty("生效时间")
    private LocalDate shengXiaoSJ;
    @ApiModelProperty("失效时间")
    private LocalDate shiXiaoSJ;
    @ApiModelProperty("来源名称")
    private String laiYuanMC;
    @ApiModelProperty("来源文件的ID")
    private String laiYuanId;
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date chuangJianSJ;
    @ApiModelProperty("修改时间")
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date xiuGaiSJ;
    @ApiModelProperty("编码系统标识符")
    private List<String> bianMaXTBSF;
    private Collection<DaiMaDto> daiMaList;

    public ZhiYuDto() {
    }

    public Long getId() {
        return this.id;
    }

    public String getZhiJiBSF() {
        return this.zhiJiBSF;
    }

    public String getZhiJiMC() {
        return this.zhiJiMC;
    }

    public Integer getBanBen() {
        return this.banBen;
    }

    public String getMiaoShu() {
        return this.miaoShu;
    }

    public Integer getStatus() {
        return this.status;
    }

    public Integer getBiaoZhunLX() {
        return this.biaoZhunLX;
    }

    public String getFaBuJGID() {
        return this.faBuJGID;
    }

    public String getFaBuJGMC() {
        return this.faBuJGMC;
    }

    public LocalDate getFaBuSJ() {
        return this.faBuSJ;
    }

    public LocalDate getShengXiaoSJ() {
        return this.shengXiaoSJ;
    }

    public LocalDate getShiXiaoSJ() {
        return this.shiXiaoSJ;
    }

    public String getLaiYuanMC() {
        return this.laiYuanMC;
    }

    public String getLaiYuanId() {
        return this.laiYuanId;
    }

    public Date getChuangJianSJ() {
        return this.chuangJianSJ;
    }

    public Date getXiuGaiSJ() {
        return this.xiuGaiSJ;
    }

    public List<String> getBianMaXTBSF() {
        return this.bianMaXTBSF;
    }

    public Collection<DaiMaDto> getDaiMaList() {
        return this.daiMaList;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setZhiJiBSF(String zhiJiBSF) {
        this.zhiJiBSF = zhiJiBSF;
    }

    public void setZhiJiMC(String zhiJiMC) {
        this.zhiJiMC = zhiJiMC;
    }

    public void setBanBen(Integer banBen) {
        this.banBen = banBen;
    }

    public void setMiaoShu(String miaoShu) {
        this.miaoShu = miaoShu;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public void setBiaoZhunLX(Integer biaoZhunLX) {
        this.biaoZhunLX = biaoZhunLX;
    }

    public void setFaBuJGID(String faBuJGID) {
        this.faBuJGID = faBuJGID;
    }

    public void setFaBuJGMC(String faBuJGMC) {
        this.faBuJGMC = faBuJGMC;
    }

    public void setFaBuSJ(LocalDate faBuSJ) {
        this.faBuSJ = faBuSJ;
    }

    public void setShengXiaoSJ(LocalDate shengXiaoSJ) {
        this.shengXiaoSJ = shengXiaoSJ;
    }

    public void setShiXiaoSJ(LocalDate shiXiaoSJ) {
        this.shiXiaoSJ = shiXiaoSJ;
    }

    public void setLaiYuanMC(String laiYuanMC) {
        this.laiYuanMC = laiYuanMC;
    }

    public void setLaiYuanId(String laiYuanId) {
        this.laiYuanId = laiYuanId;
    }

    public void setChuangJianSJ(Date chuangJianSJ) {
        this.chuangJianSJ = chuangJianSJ;
    }

    public void setXiuGaiSJ(Date xiuGaiSJ) {
        this.xiuGaiSJ = xiuGaiSJ;
    }

    public void setBianMaXTBSF(List<String> bianMaXTBSF) {
        this.bianMaXTBSF = bianMaXTBSF;
    }

    public void setDaiMaList(Collection<DaiMaDto> daiMaList) {
        this.daiMaList = daiMaList;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof ZhiYuDto)) {
            return false;
        } else {
            ZhiYuDto other = (ZhiYuDto)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$id = this.getId();
                Object other$id = other.getId();
                if (this$id == null) {
                    if (other$id != null) {
                        return false;
                    }
                } else if (!this$id.equals(other$id)) {
                    return false;
                }

                Object this$zhiJiBSF = this.getZhiJiBSF();
                Object other$zhiJiBSF = other.getZhiJiBSF();
                if (this$zhiJiBSF == null) {
                    if (other$zhiJiBSF != null) {
                        return false;
                    }
                } else if (!this$zhiJiBSF.equals(other$zhiJiBSF)) {
                    return false;
                }

                Object this$zhiJiMC = this.getZhiJiMC();
                Object other$zhiJiMC = other.getZhiJiMC();
                if (this$zhiJiMC == null) {
                    if (other$zhiJiMC != null) {
                        return false;
                    }
                } else if (!this$zhiJiMC.equals(other$zhiJiMC)) {
                    return false;
                }

                label206: {
                    Object this$banBen = this.getBanBen();
                    Object other$banBen = other.getBanBen();
                    if (this$banBen == null) {
                        if (other$banBen == null) {
                            break label206;
                        }
                    } else if (this$banBen.equals(other$banBen)) {
                        break label206;
                    }

                    return false;
                }

                label199: {
                    Object this$miaoShu = this.getMiaoShu();
                    Object other$miaoShu = other.getMiaoShu();
                    if (this$miaoShu == null) {
                        if (other$miaoShu == null) {
                            break label199;
                        }
                    } else if (this$miaoShu.equals(other$miaoShu)) {
                        break label199;
                    }

                    return false;
                }

                Object this$status = this.getStatus();
                Object other$status = other.getStatus();
                if (this$status == null) {
                    if (other$status != null) {
                        return false;
                    }
                } else if (!this$status.equals(other$status)) {
                    return false;
                }

                label185: {
                    Object this$biaoZhunLX = this.getBiaoZhunLX();
                    Object other$biaoZhunLX = other.getBiaoZhunLX();
                    if (this$biaoZhunLX == null) {
                        if (other$biaoZhunLX == null) {
                            break label185;
                        }
                    } else if (this$biaoZhunLX.equals(other$biaoZhunLX)) {
                        break label185;
                    }

                    return false;
                }

                label178: {
                    Object this$faBuJGID = this.getFaBuJGID();
                    Object other$faBuJGID = other.getFaBuJGID();
                    if (this$faBuJGID == null) {
                        if (other$faBuJGID == null) {
                            break label178;
                        }
                    } else if (this$faBuJGID.equals(other$faBuJGID)) {
                        break label178;
                    }

                    return false;
                }

                Object this$faBuJGMC = this.getFaBuJGMC();
                Object other$faBuJGMC = other.getFaBuJGMC();
                if (this$faBuJGMC == null) {
                    if (other$faBuJGMC != null) {
                        return false;
                    }
                } else if (!this$faBuJGMC.equals(other$faBuJGMC)) {
                    return false;
                }

                Object this$faBuSJ = this.getFaBuSJ();
                Object other$faBuSJ = other.getFaBuSJ();
                if (this$faBuSJ == null) {
                    if (other$faBuSJ != null) {
                        return false;
                    }
                } else if (!this$faBuSJ.equals(other$faBuSJ)) {
                    return false;
                }

                label157: {
                    Object this$shengXiaoSJ = this.getShengXiaoSJ();
                    Object other$shengXiaoSJ = other.getShengXiaoSJ();
                    if (this$shengXiaoSJ == null) {
                        if (other$shengXiaoSJ == null) {
                            break label157;
                        }
                    } else if (this$shengXiaoSJ.equals(other$shengXiaoSJ)) {
                        break label157;
                    }

                    return false;
                }

                label150: {
                    Object this$shiXiaoSJ = this.getShiXiaoSJ();
                    Object other$shiXiaoSJ = other.getShiXiaoSJ();
                    if (this$shiXiaoSJ == null) {
                        if (other$shiXiaoSJ == null) {
                            break label150;
                        }
                    } else if (this$shiXiaoSJ.equals(other$shiXiaoSJ)) {
                        break label150;
                    }

                    return false;
                }

                Object this$laiYuanMC = this.getLaiYuanMC();
                Object other$laiYuanMC = other.getLaiYuanMC();
                if (this$laiYuanMC == null) {
                    if (other$laiYuanMC != null) {
                        return false;
                    }
                } else if (!this$laiYuanMC.equals(other$laiYuanMC)) {
                    return false;
                }

                label136: {
                    Object this$laiYuanId = this.getLaiYuanId();
                    Object other$laiYuanId = other.getLaiYuanId();
                    if (this$laiYuanId == null) {
                        if (other$laiYuanId == null) {
                            break label136;
                        }
                    } else if (this$laiYuanId.equals(other$laiYuanId)) {
                        break label136;
                    }

                    return false;
                }

                Object this$chuangJianSJ = this.getChuangJianSJ();
                Object other$chuangJianSJ = other.getChuangJianSJ();
                if (this$chuangJianSJ == null) {
                    if (other$chuangJianSJ != null) {
                        return false;
                    }
                } else if (!this$chuangJianSJ.equals(other$chuangJianSJ)) {
                    return false;
                }

                label122: {
                    Object this$xiuGaiSJ = this.getXiuGaiSJ();
                    Object other$xiuGaiSJ = other.getXiuGaiSJ();
                    if (this$xiuGaiSJ == null) {
                        if (other$xiuGaiSJ == null) {
                            break label122;
                        }
                    } else if (this$xiuGaiSJ.equals(other$xiuGaiSJ)) {
                        break label122;
                    }

                    return false;
                }

                Object this$bianMaXTBSF = this.getBianMaXTBSF();
                Object other$bianMaXTBSF = other.getBianMaXTBSF();
                if (this$bianMaXTBSF == null) {
                    if (other$bianMaXTBSF != null) {
                        return false;
                    }
                } else if (!this$bianMaXTBSF.equals(other$bianMaXTBSF)) {
                    return false;
                }

                Object this$daiMaList = this.getDaiMaList();
                Object other$daiMaList = other.getDaiMaList();
                if (this$daiMaList == null) {
                    if (other$daiMaList != null) {
                        return false;
                    }
                } else if (!this$daiMaList.equals(other$daiMaList)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof ZhiYuDto;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $zhiJiBSF = this.getZhiJiBSF();
        result = result * 59 + ($zhiJiBSF == null ? 43 : $zhiJiBSF.hashCode());
        Object $zhiJiMC = this.getZhiJiMC();
        result = result * 59 + ($zhiJiMC == null ? 43 : $zhiJiMC.hashCode());
        Object $banBen = this.getBanBen();
        result = result * 59 + ($banBen == null ? 43 : $banBen.hashCode());
        Object $miaoShu = this.getMiaoShu();
        result = result * 59 + ($miaoShu == null ? 43 : $miaoShu.hashCode());
        Object $status = this.getStatus();
        result = result * 59 + ($status == null ? 43 : $status.hashCode());
        Object $biaoZhunLX = this.getBiaoZhunLX();
        result = result * 59 + ($biaoZhunLX == null ? 43 : $biaoZhunLX.hashCode());
        Object $faBuJGID = this.getFaBuJGID();
        result = result * 59 + ($faBuJGID == null ? 43 : $faBuJGID.hashCode());
        Object $faBuJGMC = this.getFaBuJGMC();
        result = result * 59 + ($faBuJGMC == null ? 43 : $faBuJGMC.hashCode());
        Object $faBuSJ = this.getFaBuSJ();
        result = result * 59 + ($faBuSJ == null ? 43 : $faBuSJ.hashCode());
        Object $shengXiaoSJ = this.getShengXiaoSJ();
        result = result * 59 + ($shengXiaoSJ == null ? 43 : $shengXiaoSJ.hashCode());
        Object $shiXiaoSJ = this.getShiXiaoSJ();
        result = result * 59 + ($shiXiaoSJ == null ? 43 : $shiXiaoSJ.hashCode());
        Object $laiYuanMC = this.getLaiYuanMC();
        result = result * 59 + ($laiYuanMC == null ? 43 : $laiYuanMC.hashCode());
        Object $laiYuanId = this.getLaiYuanId();
        result = result * 59 + ($laiYuanId == null ? 43 : $laiYuanId.hashCode());
        Object $chuangJianSJ = this.getChuangJianSJ();
        result = result * 59 + ($chuangJianSJ == null ? 43 : $chuangJianSJ.hashCode());
        Object $xiuGaiSJ = this.getXiuGaiSJ();
        result = result * 59 + ($xiuGaiSJ == null ? 43 : $xiuGaiSJ.hashCode());
        Object $bianMaXTBSF = this.getBianMaXTBSF();
        result = result * 59 + ($bianMaXTBSF == null ? 43 : $bianMaXTBSF.hashCode());
        Object $daiMaList = this.getDaiMaList();
        result = result * 59 + ($daiMaList == null ? 43 : $daiMaList.hashCode());
        return result;
    }

    public String toString() {
        return "ZhiYuDto(id=" + this.getId() + ", zhiJiBSF=" + this.getZhiJiBSF() + ", zhiJiMC=" + this.getZhiJiMC() + ", banBen=" + this.getBanBen() + ", miaoShu=" + this.getMiaoShu() + ", status=" + this.getStatus() + ", biaoZhunLX=" + this.getBiaoZhunLX() + ", faBuJGID=" + this.getFaBuJGID() + ", faBuJGMC=" + this.getFaBuJGMC() + ", faBuSJ=" + this.getFaBuSJ() + ", shengXiaoSJ=" + this.getShengXiaoSJ() + ", shiXiaoSJ=" + this.getShiXiaoSJ() + ", laiYuanMC=" + this.getLaiYuanMC() + ", laiYuanId=" + this.getLaiYuanId() + ", chuangJianSJ=" + this.getChuangJianSJ() + ", xiuGaiSJ=" + this.getXiuGaiSJ() + ", bianMaXTBSF=" + this.getBianMaXTBSF() + ", daiMaList=" + this.getDaiMaList() + ")";
    }
}
